/* arch/x86/include32/arch/archinfo.h 
 * 
 * Copyright (C) 2021, 2022 intirain. 
 *
 * This file is part of evx. 
 * 
 * evx is free software: you can redistribute it and/or modify 
 * it under the terms of the GNU General Public License as published by 
 * the Free Software Foundation, either version 3 of the License, or 
 * (at your option) any later version. 
 * 
 * evx is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
 * GNU General Public License for more details. 
 * 
 * You should have received a copy of the GNU General Public License 
 * along with evx. If not, see <https://www.gnu.org/licenses/>
 */ 




#ifndef __ARCH_ARCHINFO_H
#define __ARCH_ARCHINFO_H


#define ARCH_NAME 	"i386"
#define ARCH_BITS 	32lu


typedef __uint32_t __archptr_t;

#define PAGE_SIZE 	4096lu
#define PAGE_MASK 	4095lu
#define PAGE_SHIFT 	12lu
#define PAGE_ALIGN(a) 	(((a) + PAGE_MASK) & (~PAGE_MASK))

#define PAGE_NR(addr) 	((addr) >> PAGE_SHIFT)

#define PTRSIZE 	4lu
#define PTRSHIFT 	2lu


#define KERNEL_OFFSET 	0xc0000000lu


#endif

